home *** CD-ROM | disk | FTP | other *** search
- <%@ LANGUAGE = VBScript %>
- <% 'Option Explicit %>
- <!-- #include file="directives.inc" -->
-
- <!--#include file="iicache.str"-->
- <!--#include file="iiaspstr.inc"-->
-
- <%
- 'Call this page with a query string of ?sname=machinename
- 'example: http://larad01/iis/iicnct.asp?sname=larad01
-
- On Error Resume Next
-
- Dim path, sname, scripttimeout, FileSystem, quote, errd, currentADsObj, lastobj
- Dim newid, topid, firstid, currentid, numNewItems
-
-
- 'This script can take a _long_ time to execute,
- 'as we may be dealing with thousands of items
- 'to add to our JScript object.
- 'save our current script timeout value & set to a much longer value...
-
- scripttimeout = Server.ScriptTimeOut
- Server.ScriptTimeOut = 2000
-
- Set FileSystem=CreateObject("Scripting.FileSystemObject")
-
- path=Request.QueryString("sname")
-
- quote=chr(34)
- errd=False
- if (len(path) <> 0) then
- Set currentADsObj=GetObject(path)
- if err <> 0 then
- errd=True
- end if
- end if
-
- lastobj = ""
-
- %>
-
-
-
- <HTML>
- <HEAD>
- <SCRIPT LANGUAGE="JavaScript">
-
- var theList=top.title.nodeList;
-
- <%
-
- if errd=0 then
-
-
- newid=Request.QueryString("Nextid")
-
- firstid=newid
- if firstid="" then
- firstid=0
- end if
-
- currentid=Request.QueryString("currentid")
- if currentid="" then
- currentid=firstid
- newid=newid + 1
- end if
-
- numNewItems=0
-
- if (len(path) <> 0) then
-
- %>theList[<%= currentid %>].isCached=true;<%
- %>theList[<%= currentid %>].open=true;<%
-
- addObject currentADsObj,currentid,"vdir"
-
- if Instr(currentADsObj.KeyType, "VirtualDir") <> 0 then
- addDirs currentADsObj.Path, currentADsObj.ADsPath, currentid, "dir"
- end if
- end if
- Server.ScriptTimeOut = scripttimeout
- end if
-
- Sub addObject(Container, parentid, vtype)
-
- On Error Resume Next
- Dim thisname, isApp, thisid, thisstate
- Dim approot, thisroot
-
- if err.number <> 0 then
- errd = true
- else
- For Each Child In Container
- if Instr(Child.KeyType, "VirtualDir") <> 0 then
- thisid=newid
- thisname=Child.Name
- thisstate=2
- isApp = False
- approot=LCase(Child.AppRoot)
- if len(approot) <> 0 then
- thisroot = LCase(Child.ADsPath)
- approot = Mid(approot,Instr(approot,"w3svc/")+1)
- thisroot = Mid(thisroot,Instr(thisroot,"w3svc/")+1)
-
- if Right(approot,1) = "/" then
- thisroot = thisroot & "/"
- end if
-
- if thisroot=approot then
- isApp = True
- end if
- end if
- if UCase(thisname) <> "ROOT" then
-
- SetJscriptObj thisname, Child.ADsPath, parentid, vtype, thisstate, Child.Path, isApp
- numNewItems=numNewItems + 1
-
- addObject Child, thisid, "vdir"
- addDirs Child.Path, Child.ADsPath, thisid, "dir"
- else
- addObject Child, parentid, "vdir"
- addDirs Child.Path, Child.ADsPath, parentid, "dir"
- end if
- end if
- Next
- end if
-
- End Sub
-
- Sub addDirs(path, adspath, parentid, vtype)
-
- Dim thisid, thisname, thisstate, thisadspath, i, f
-
- if Instr(UCase(adspath),"W3SVC") <> 0 then
- if path <> "" then
- if Left(path,2) <> "\\" then
- if FileSystem.FolderExists(path) then
- Set f=FileSystem.GetFolder(path)
- For Each i In f.SubFolders
- thisid=newid
- thisstate=2
- thisadspath = adspath & "/" & i.Name
- SetJscriptObj i.Name,thisadspath, parentid, vtype, thisstate,i,False
- numNewItems=numNewItems + 1
- if err=0 then
- addDirs i, thisadspath, thisid, "dir"
- end if
- Next
- end if
- end if
- end if
- end if
- End Sub
-
- Sub SetJscriptObj(caption, path, parentid,vtype,state, fspath,isApp)
- %>
- theList[<%= newid %>]=theList[<%= parentid %>].addNode(new top.title.listObj(<%= newid %>,"<%= sJSLiteral(caption) %>","<%= sJSLiteral(path) %>","<%= vtype %>",<%= state %>));
- theList[<%= parentid %>].isCached=true;
- theList[<%= newid %>].isCached=true;
- <% if isApp then %>
- theList[<%= newid %>].icon = top.title.Global.imagedir + "app";
- theList[<%= newid %>].isApp = true;
- <% end if %>
- theList[<%= newid %>].fspath="<%= replace(fspath,"\","\\") %>";
- <%
- newid=newid + 1
-
- End Sub
-
-
- ' we need to insert the whole group into the correct place In the array.
- ' since we Set the first entry (machine) to the exisitng place In the array,
- ' the Next level In the hierarchy (vservers) will be pointing to the correct
- ' parent ids. However, the following level (vdirs, and below) will be pointing
- ' to the parent ids as they existed at the bottom of the array, before the
- ' move, and will need to be adjusted.
- %>
-
- <% if errd=0 then %>
-
- gVars=top.title.Global;
- var item=<%= firstid %>;
- currentid=<%= currentid %>;
- if (currentid !=item){
-
- x=currentid + 1;
-
- //correct the id on the "new" objects
- for (var i=item; i < theList.length; i++) {
- theList[i].id=x;
- if (theList[i].parent !=currentid){
- theList[i].parent=theList[i].parent - (item - (currentid + 1));
- }
- x++;
- }
-
- //move the following records "down" the array
- for (var i=currentid + 1; i < item;i++){
-
- theList[i].id=theList[i].id + <%= numNewItems %>;
- if (theList[i].parent >currentid){
- theList[i].parent=theList[i].parent + <%= numNewItems %>;
- }
- }
-
-
- }
-
-
- //and re-sort.
- theList[0].sortList();
- theList[0].markTerms();
-
-
- if (theList.length==1){
- gVars.selId=0;
- theList[0].selected=true;
- }
- else{
- theList[gVars.selId].selected=false;
- gVars.selId=<%= currentid %>;
- theList[<%= currentid %>].selected=true;
- }
-
- top.body.list.location.href="iisrvls.asp"
-
- <% else %>
- alert("<%= L_CNCTERR_TEXT %> (<%= err %>)");
- <% end if %>
-
- top.body.iisstatus.location="iistat.asp"
-
- </SCRIPT>
-
- <% if err <> 0 then %>
- <% Response.write "err: " & err.description %><BR>
- <% Response.write "currentcontainer: " & currentADsObj.ADsPath %><BR>
- <% Response.write " " & currentADsObj.KeyType %><BR>
- <% Response.write "Err Container:" & lastobj %><BR>
- <% end if %>
-
- </HEAD>
-
- <BODY>
- </BODY>
- </HTML>
-
-